package com.luych.toolbox.docker.service.sdk.system.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

public class DockerVersionResult {

    @JsonProperty("Components")
    private List<Component> components;

    @JsonProperty("KernelVersion")
    private String kernelVersion;

    @JsonProperty("ApiVersion")
    private String apiVersion;

    @JsonProperty("Platform")
    private Platform platform;

    @JsonProperty("GitCommit")
    private String gitCommit;

    @JsonProperty("Os")
    private String os;

    @JsonProperty("Version")
    private String version;

    @JsonProperty("MinAPIVersion")
    private String minAPIVersion;

    @JsonProperty("Experimental")
    private Boolean experimental;

    @JsonProperty("Arch")
    private String arch;

    @JsonProperty("GoVersion")
    private String goVersion;

    @JsonProperty("BuildTime")
    private String buildTime;

    public List<Component> getComponents() {
        return components;
    }

    public void setComponents(List<Component> components) {
        this.components = components;
    }

    public String getKernelVersion() {
        return kernelVersion;
    }

    public void setKernelVersion(String kernelVersion) {
        this.kernelVersion = kernelVersion;
    }

    public String getApiVersion() {
        return apiVersion;
    }

    public void setApiVersion(String apiVersion) {
        this.apiVersion = apiVersion;
    }

    public Platform getPlatform() {
        return platform;
    }

    public void setPlatform(Platform platform) {
        this.platform = platform;
    }

    public String getGitCommit() {
        return gitCommit;
    }

    public void setGitCommit(String gitCommit) {
        this.gitCommit = gitCommit;
    }

    public String getOs() {
        return os;
    }

    public void setOs(String os) {
        this.os = os;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getMinAPIVersion() {
        return minAPIVersion;
    }

    public void setMinAPIVersion(String minAPIVersion) {
        this.minAPIVersion = minAPIVersion;
    }

    public Boolean getExperimental() {
        return experimental;
    }

    public void setExperimental(Boolean experimental) {
        this.experimental = experimental;
    }

    public String getArch() {
        return arch;
    }

    public void setArch(String arch) {
        this.arch = arch;
    }

    public String getGoVersion() {
        return goVersion;
    }

    public void setGoVersion(String goVersion) {
        this.goVersion = goVersion;
    }

    public String getBuildTime() {
        return buildTime;
    }

    public void setBuildTime(String buildTime) {
        this.buildTime = buildTime;
    }

    public static class Platform {

        @JsonProperty("Name")
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    public static class Component {

        @JsonProperty("Details")
        private Details details;

        @JsonProperty("Version")
        private String version;

        @JsonProperty("Name")
        private String name;

        public Details getDetails() {
            return details;
        }

        public void setDetails(Details details) {
            this.details = details;
        }

        public String getVersion() {
            return version;
        }

        public void setVersion(String version) {
            this.version = version;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public static class Details {

        }
    }
}